package br.com.cotec.dao.impl;

import java.io.Serializable;

import org.hibernate.exception.ConstraintViolationException;
import org.springframework.dao.DataIntegrityViolationException;

import br.com.cotec.dao.NomePerifericoDao;
import br.com.cotec.exception.RegistroSendoUtilizadoException;
import br.com.cotec.model.NomePeriferico;

public class NomePerifericoDaoImpl extends GenericDaoImpl<NomePeriferico, Serializable> implements NomePerifericoDao{

	@Override
	public void remove(NomePeriferico object)
			throws RegistroSendoUtilizadoException, Exception {
		try {
			NomePeriferico obj = (NomePeriferico)getByExample(object).get(0);
			// verifica se tem filhos
			if (obj.getPerifericos().size() > 0) {
				throw new RegistroSendoUtilizadoException("erroRemoverRegistroUsado");
			} else {
				em.remove(obj);
			}
		} catch (ConstraintViolationException e) {
			throw new RegistroSendoUtilizadoException("erroRemoverRegistroUsado");
		} catch (DataIntegrityViolationException e) {
			throw new RegistroSendoUtilizadoException("erroRemoverRegistroUsado");
		} catch (RegistroSendoUtilizadoException e) {
			throw new RegistroSendoUtilizadoException("erroRemoverRegistroUsado");
		} catch (Exception e) {
			throw new Exception();
		}
	}
	
	
}